\hypertarget{classCStreamBuilder}{
\section{\-C\-Stream\-Builder \-Class \-Reference}
\label{classCStreamBuilder}\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}}
}


stream builder for guaranteed stream communication  




{\ttfamily \#include $<$stream\-\_\-builder.\-h$>$}

\-Inheritance diagram for \-C\-Stream\-Builder\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classCStreamBuilder}
\end{center}
\end{figure}
\subsection*{\-Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classCStreamBuilder_1_1CPacket}{\-C\-Packet}
\item 
class \hyperlink{classCStreamBuilder_1_1CParam}{\-C\-Param}
\item 
class \hyperlink{classCStreamBuilder_1_1CRecvParam}{\-C\-Recv\-Param}
\item 
class \hyperlink{classCStreamBuilder_1_1CSendParam}{\-C\-Send\-Param}
\end{DoxyCompactItemize}
\subsection*{\-Public \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classCStreamBuilder_a06758921365de7628060eeb6e2b69465}{\-C\-Stream\-Builder} (\hyperlink{properties__reader_8h_a67847fd00cb49d80dd45f61722eb9a43}{\-C\-Properties\-Reader} $\ast$p\-Config, \hyperlink{classIStegIO}{\-I\-Steg\-I\-O} $\ast$p\-Steg\-I\-O)
\item 
virtual \hyperlink{classCStreamBuilder_a640aa894dc07aca3a57766fa744a9e5d}{$\sim$\-C\-Stream\-Builder} ()
\item 
virtual \hyperlink{namespaceNPacketSource_a41d32c941906c55fd056bc4be5e0c79b}{\-N\-Packet\-Source\-::\-E\-Payload\-Info} \hyperlink{classCStreamBuilder_a2a74e55838f864d369c88b24508f19fb}{get\-Packet} (void $\ast$\&p\-Packet, unsigned int \&p\-Packet\-Length, unsigned int p\-Max\-Length)
\item 
virtual void \hyperlink{classCStreamBuilder_ad3fb845b492550facda63badddda0ada}{put\-Packet} (void $\ast$p\-Packet, unsigned int p\-Packet\-Length)
\end{DoxyCompactItemize}
\subsection*{\-Private \-Member \-Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classCStreamBuilder_a15571c7701aadfac3a8c1ce88792d3df}{\-C\-Stream\-Builder} (const \hyperlink{classCStreamBuilder}{\-C\-Stream\-Builder} \&)
\item 
\hyperlink{classCStreamBuilder}{\-C\-Stream\-Builder} \& \hyperlink{classCStreamBuilder_a7b1743bcb97f10056f9c1ca207cff131}{operator=} (const \hyperlink{classCStreamBuilder}{\-C\-Stream\-Builder} \&)
\end{DoxyCompactItemize}
\subsection*{\-Private \-Attributes}
\begin{DoxyCompactItemize}
\item 
\hyperlink{properties__reader_8h_a67847fd00cb49d80dd45f61722eb9a43}{\-C\-Properties\-Reader} $\ast$ \hyperlink{classCStreamBuilder_a93262d2e2322080d82be52891ede225a}{m\-Config}
\item 
\hyperlink{classIStegIO}{\-I\-Steg\-I\-O} $\ast$ \hyperlink{classCStreamBuilder_a16c3b9a2937fa6b22061023397807391}{m\-Steg\-I\-O}
\item 
\hyperlink{classCStreamBuilder_1_1CSendParam}{\-C\-Send\-Param} \hyperlink{classCStreamBuilder_aef10af7feef29a442efae2cfa3ac6b0c}{m\-Send}
\item 
\hyperlink{classCStreamBuilder_1_1CRecvParam}{\-C\-Recv\-Param} \hyperlink{classCStreamBuilder_a7a7c98a8fbab29a2d359c7d0b762663c}{m\-Recv}
\end{DoxyCompactItemize}
\subsection*{\-Static \-Private \-Attributes}
\begin{DoxyCompactItemize}
\item 
static const std\-::string \hyperlink{classCStreamBuilder_a8555db4383b917a33c1a56a7b9180325}{s\-Ini\-Section\-Name}
\item 
static const unsigned int \hyperlink{classCStreamBuilder_a160a0bb317b104ce50eec4ba7d28fbd4}{s\-Max\-Id}
\item 
static const unsigned int \hyperlink{classCStreamBuilder_a1f1c72fbfc0470f0829743da3728d3b6}{s\-Window\-Size}
\item 
static const unsigned int \hyperlink{classCStreamBuilder_a94a134f6730f012193c25d9bf788a815}{s\-Resize\-Inc}
\end{DoxyCompactItemize}


\subsection{\-Detailed \-Description}
stream builder for guaranteed stream communication 

\begin{DoxyAuthor}{\-Author}
mnutzinger, jwurzer 
\end{DoxyAuthor}


\subsection{\-Constructor \& \-Destructor \-Documentation}
\hypertarget{classCStreamBuilder_a06758921365de7628060eeb6e2b69465}{
\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}!\-C\-Stream\-Builder@{\-C\-Stream\-Builder}}
\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}!CStreamBuilder@{\-C\-Stream\-Builder}}
\subsubsection[{\-C\-Stream\-Builder}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Stream\-Builder\-::\-C\-Stream\-Builder (
\begin{DoxyParamCaption}
\item[{{\bf \-C\-Properties\-Reader} $\ast$}]{p\-Config, }
\item[{{\bf \-I\-Steg\-I\-O} $\ast$}]{p\-Steg\-I\-O}
\end{DoxyParamCaption}
)}}
\label{classCStreamBuilder_a06758921365de7628060eeb6e2b69465}
\hypertarget{classCStreamBuilder_a640aa894dc07aca3a57766fa744a9e5d}{
\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}!$\sim$\-C\-Stream\-Builder@{$\sim$\-C\-Stream\-Builder}}
\index{$\sim$\-C\-Stream\-Builder@{$\sim$\-C\-Stream\-Builder}!CStreamBuilder@{\-C\-Stream\-Builder}}
\subsubsection[{$\sim$\-C\-Stream\-Builder}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Stream\-Builder\-::$\sim$\-C\-Stream\-Builder (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCStreamBuilder_a640aa894dc07aca3a57766fa744a9e5d}
\hypertarget{classCStreamBuilder_a15571c7701aadfac3a8c1ce88792d3df}{
\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}!\-C\-Stream\-Builder@{\-C\-Stream\-Builder}}
\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}!CStreamBuilder@{\-C\-Stream\-Builder}}
\subsubsection[{\-C\-Stream\-Builder}]{\setlength{\rightskip}{0pt plus 5cm}\-C\-Stream\-Builder\-::\-C\-Stream\-Builder (
\begin{DoxyParamCaption}
\item[{const {\bf \-C\-Stream\-Builder} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCStreamBuilder_a15571c7701aadfac3a8c1ce88792d3df}


\subsection{\-Member \-Function \-Documentation}
\hypertarget{classCStreamBuilder_a2a74e55838f864d369c88b24508f19fb}{
\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}!get\-Packet@{get\-Packet}}
\index{get\-Packet@{get\-Packet}!CStreamBuilder@{\-C\-Stream\-Builder}}
\subsubsection[{get\-Packet}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-N\-Packet\-Source\-::\-E\-Payload\-Info} \-C\-Stream\-Builder\-::get\-Packet (
\begin{DoxyParamCaption}
\item[{void $\ast$\&}]{p\-Packet, }
\item[{unsigned int \&}]{p\-Packet\-Length, }
\item[{unsigned int}]{p\-Max\-Length}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCStreamBuilder_a2a74e55838f864d369c88b24508f19fb}
get a packet from the packet source (from upper to lower layer) \begin{DoxyNote}{\-Note}
p\-Packet and p\-Packet\-Length only make sense if return value is true 

minimum payload length is always 1 (if return value of true)
\end{DoxyNote}

\begin{DoxyParams}{\-Parameters}
{\em p\-Packet} & pointer to the bytes representing the packet \\
\hline
{\em p\-Packet\-Length} & number of bytes \\
\hline
{\em p\-Max\-Length} & maximum number of bytes for the returned packet \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{\-Returns}
true on data available, false otherwise 
\end{DoxyReturn}


\-Implements \hyperlink{classIPacketSource_a646c3a5cc1c03628145471697b1abf54}{\-I\-Packet\-Source}.

\hypertarget{classCStreamBuilder_a7b1743bcb97f10056f9c1ca207cff131}{
\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}!operator=@{operator=}}
\index{operator=@{operator=}!CStreamBuilder@{\-C\-Stream\-Builder}}
\subsubsection[{operator=}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-C\-Stream\-Builder}\& \-C\-Stream\-Builder\-::operator= (
\begin{DoxyParamCaption}
\item[{const {\bf \-C\-Stream\-Builder} \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCStreamBuilder_a7b1743bcb97f10056f9c1ca207cff131}
\hypertarget{classCStreamBuilder_ad3fb845b492550facda63badddda0ada}{
\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}!put\-Packet@{put\-Packet}}
\index{put\-Packet@{put\-Packet}!CStreamBuilder@{\-C\-Stream\-Builder}}
\subsubsection[{put\-Packet}]{\setlength{\rightskip}{0pt plus 5cm}void \-C\-Stream\-Builder\-::put\-Packet (
\begin{DoxyParamCaption}
\item[{void $\ast$}]{p\-Packet, }
\item[{unsigned int}]{p\-Packet\-Length}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}virtual\mbox{]}}}}
\label{classCStreamBuilder_ad3fb845b492550facda63badddda0ada}
put a packet to the packet source (from lower to upper layer)


\begin{DoxyParams}{\-Parameters}
{\em p\-Packet} & pointer to the bytes representing the packet \\
\hline
{\em p\-Packet\-Length} & number of bytes \\
\hline
\end{DoxyParams}


\-Implements \hyperlink{classIPacketSource_ad2c03d2e3370eef80a207617bd561f26}{\-I\-Packet\-Source}.



\subsection{\-Member \-Data \-Documentation}
\hypertarget{classCStreamBuilder_a93262d2e2322080d82be52891ede225a}{
\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}!m\-Config@{m\-Config}}
\index{m\-Config@{m\-Config}!CStreamBuilder@{\-C\-Stream\-Builder}}
\subsubsection[{m\-Config}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-C\-Properties\-Reader}$\ast$ {\bf \-C\-Stream\-Builder\-::m\-Config}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCStreamBuilder_a93262d2e2322080d82be52891ede225a}
\hypertarget{classCStreamBuilder_a7a7c98a8fbab29a2d359c7d0b762663c}{
\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}!m\-Recv@{m\-Recv}}
\index{m\-Recv@{m\-Recv}!CStreamBuilder@{\-C\-Stream\-Builder}}
\subsubsection[{m\-Recv}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-C\-Recv\-Param} {\bf \-C\-Stream\-Builder\-::m\-Recv}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCStreamBuilder_a7a7c98a8fbab29a2d359c7d0b762663c}
\hypertarget{classCStreamBuilder_aef10af7feef29a442efae2cfa3ac6b0c}{
\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}!m\-Send@{m\-Send}}
\index{m\-Send@{m\-Send}!CStreamBuilder@{\-C\-Stream\-Builder}}
\subsubsection[{m\-Send}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-C\-Send\-Param} {\bf \-C\-Stream\-Builder\-::m\-Send}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCStreamBuilder_aef10af7feef29a442efae2cfa3ac6b0c}
\hypertarget{classCStreamBuilder_a16c3b9a2937fa6b22061023397807391}{
\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}!m\-Steg\-I\-O@{m\-Steg\-I\-O}}
\index{m\-Steg\-I\-O@{m\-Steg\-I\-O}!CStreamBuilder@{\-C\-Stream\-Builder}}
\subsubsection[{m\-Steg\-I\-O}]{\setlength{\rightskip}{0pt plus 5cm}{\bf \-I\-Steg\-I\-O}$\ast$ {\bf \-C\-Stream\-Builder\-::m\-Steg\-I\-O}\hspace{0.3cm}{\ttfamily  \mbox{[}private\mbox{]}}}}
\label{classCStreamBuilder_a16c3b9a2937fa6b22061023397807391}
\hypertarget{classCStreamBuilder_a8555db4383b917a33c1a56a7b9180325}{
\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}!s\-Ini\-Section\-Name@{s\-Ini\-Section\-Name}}
\index{s\-Ini\-Section\-Name@{s\-Ini\-Section\-Name}!CStreamBuilder@{\-C\-Stream\-Builder}}
\subsubsection[{s\-Ini\-Section\-Name}]{\setlength{\rightskip}{0pt plus 5cm}const std\-::string {\bf \-C\-Stream\-Builder\-::s\-Ini\-Section\-Name}\hspace{0.3cm}{\ttfamily  \mbox{[}static, private\mbox{]}}}}
\label{classCStreamBuilder_a8555db4383b917a33c1a56a7b9180325}
\hypertarget{classCStreamBuilder_a160a0bb317b104ce50eec4ba7d28fbd4}{
\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}!s\-Max\-Id@{s\-Max\-Id}}
\index{s\-Max\-Id@{s\-Max\-Id}!CStreamBuilder@{\-C\-Stream\-Builder}}
\subsubsection[{s\-Max\-Id}]{\setlength{\rightskip}{0pt plus 5cm}const unsigned int {\bf \-C\-Stream\-Builder\-::s\-Max\-Id}\hspace{0.3cm}{\ttfamily  \mbox{[}static, private\mbox{]}}}}
\label{classCStreamBuilder_a160a0bb317b104ce50eec4ba7d28fbd4}
\hypertarget{classCStreamBuilder_a94a134f6730f012193c25d9bf788a815}{
\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}!s\-Resize\-Inc@{s\-Resize\-Inc}}
\index{s\-Resize\-Inc@{s\-Resize\-Inc}!CStreamBuilder@{\-C\-Stream\-Builder}}
\subsubsection[{s\-Resize\-Inc}]{\setlength{\rightskip}{0pt plus 5cm}const unsigned int {\bf \-C\-Stream\-Builder\-::s\-Resize\-Inc}\hspace{0.3cm}{\ttfamily  \mbox{[}static, private\mbox{]}}}}
\label{classCStreamBuilder_a94a134f6730f012193c25d9bf788a815}
\hypertarget{classCStreamBuilder_a1f1c72fbfc0470f0829743da3728d3b6}{
\index{\-C\-Stream\-Builder@{\-C\-Stream\-Builder}!s\-Window\-Size@{s\-Window\-Size}}
\index{s\-Window\-Size@{s\-Window\-Size}!CStreamBuilder@{\-C\-Stream\-Builder}}
\subsubsection[{s\-Window\-Size}]{\setlength{\rightskip}{0pt plus 5cm}const unsigned int {\bf \-C\-Stream\-Builder\-::s\-Window\-Size}\hspace{0.3cm}{\ttfamily  \mbox{[}static, private\mbox{]}}}}
\label{classCStreamBuilder_a1f1c72fbfc0470f0829743da3728d3b6}


\-The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
\hyperlink{stream__builder_8h}{stream\-\_\-builder.\-h}\item 
\hyperlink{stream__builder_8cxx}{stream\-\_\-builder.\-cxx}\end{DoxyCompactItemize}
